#include "udplib.h" // Bibliothek aus Aufgabe1

//signal
#include <signal.h>

/*---- SharedMemory Key----*/
// Permission und Key 
// der Key ist einfach der Pid
#define SHM_PERM 0777
#define SHM_KEY getpid() 

/*--- Semaphore key ---*/
// Permission und Key 
// es gibt nur eine Semaphore
// der Key ist einfach der Pid
#define SEM_KEY getpid()
#define SEM_NUM 1
#define SEM_PERM 0777
// Wird initialisiert mit 0
#define SEM_MUTEX 0

// Buffer_size: die Groesse des Buffer
// Paket_size: Groesse ein Paket
#define BUFFER_SIZE  20
#define PAKET_SIZE   4000 

typedef struct 
{
 char inPuffer[BUFFER_SIZE][PAKET_SIZE]; // Puffer fuer empfangenen Daten
 char ouPuffer[BUFFER_SIZE][PAKET_SIZE]; // Puffer fuer gesendet Daten

 int  inRdx, inWdx;// read und write Index der InPuffer
 int  ouRdx, ouWdx;// read und write Index der ouPuffer
} SharedMem;

int sockN;

/**Signalhandler*/
void signalhandler(int sig)
{
    printf("Signal %d caught.\n", sig);

    if(0 > close(sockN))
    {
	perror("Problem with close().");
	exit(1);
    }
    
    exit(0);
};
